package com.cy.pj.common.service;

import com.cy.pj.common.cache.Cache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

//三种属性赋值方法

@Service
public class CacheService {
//    //第一种
//    @Autowired
//    @Qualifier("softCache")
//    private Cache cache;
    //当类中有多个构造函数，但是构造函数又没有使用@Autowired注解描述时，则优先调用无参构造函数

    //第二种
//    private Cache cache;
//    public CacheService(){}
//    @Autowired//可以描述构造方法，但这个注解可以省略(只有这一个含参的构造函数时)
//    public CacheService(@Qualifier("softCache") Cache cache){//@Qualifier可以描述参数
//        this.cache=cache;
//    }

    //第三种
    //通过set方法为属性赋值
    private Cache cache;
    @Autowired
    public void setCache(@Qualifier("softCache")Cache cache) {
        this.cache = cache;
    }

    public Cache getCache(){
        return cache;
    }
}
